package org.ymf;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import org.layuiframework.generator.config.LayuiGlobalConfig;
import org.layuiframework.generator.config.es.EsStrategy;
import org.layuiframework.generator.start.MybatisGenerator;

/**
 * layui 逆向项目的入口
 */
public class LayuiGeneratorFactory {

    public static void main(String[] args) {
        /**
         * 配置数据源
         */
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/bi");
        // mysql-connector-java 5.x及之前版本中的驱动类名
        dsc.setDriverName("com.mysql.jdbc.Driver");
        // mysql-connector-java 6.x及后续版本中的驱动类名
//        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("hadoop");
        dsc.setDbType(DbType.MYSQL);

        /**
         * 配置生成的文件路径
         * （Java文件路径）
         *
         * /web
         *   - config.js     前端配置文件
         *   - table.json    临时文件
         *   - index.js      首页js文件
         *   - index.html    首页html文件
         *   /html           存放html文件
         *   /js             存放js文件
         */
        PackageConfig pc = new PackageConfig();
        pc.setParent("org.ymf");
        pc.setEntity("entity");
        pc.setMapper("mapper");
        pc.setService("service");
        pc.setController("controller");
        // TODO 作者名称
        String author = "Malphite";
        // 注释  设置 false 可以省略大量注释
//        LayuiGlobalConfig.FUUL_COMMENT = false;
        // 调用方法生成代码，这个方法从mybatisplus逆向copy过来的

        /**
         * 设置Elasticsearch
         * @param uris  访问地址 eg.http://localhost:9200
         * @param username 用户名 eg. root
         * @param password 密码 eg. 123456
         * @param strategy 数据库 => es同步策略
         *  1. 默认 {@linkplain EsStrategy.CANAL }   用户自己去使用canal实现同步,这里不生成任何同步操作
         *  2. {@linkplain EsStrategy.SCHEDULED_TASK }   定时同步,会生成spring定时任务去向es同步数据
         *  3. {@linkplain EsStrategy.DOUBLE_WRITE }   数据库与es双写,会在增删改操作时更新es,但是建议自己创建补偿任务查漏补缺
         *  4. {@linkplain EsStrategy.LOGSTASH_PIPES }  logstash数据管道,会生成logstash任务的配置文件,还需要自己执行logstash这个中间件
         */
        LayuiGlobalConfig.enableEs("http://localhost:9200","root","123456", EsStrategy.LOGSTASH_PIPES);
        MybatisGenerator.build(dsc, pc, author);
    }


}
